// 本地存储工具类

const TOKEN_KEY = 'token'
const USER_INFO_KEY = 'formInfo'
const CARD_KEY = 'cardKey'

export const StorageUtil = {
  /**
   * 设置token
   * @param {string} token 用户token
   */
  setToken(token) {
    localStorage.setItem(TOKEN_KEY, token)
  },

  /**
   * 获取token
   * @returns {string|null} 用户token
   */
  getToken() {
    return localStorage.getItem(TOKEN_KEY)
  },

  /**
   * 移除token
   */
  removeToken() {
    localStorage.removeItem(TOKEN_KEY)
  },

  /**
   * 设置用户信息
   * @param {Object} userInfo 用户信息对象
   */
  setUserInfo(userInfo) {
    localStorage.setItem(USER_INFO_KEY, JSON.stringify(userInfo))
  },

  /**
   * 获取用户信息
   * @returns {Object|null} 用户信息对象
   */
  getUserInfo() {
    const userInfo = localStorage.getItem(USER_INFO_KEY)
    return userInfo ? JSON.parse(userInfo) : null
  },

  /**
   * 移除用户信息
   */
  removeUserInfo() {
    localStorage.removeItem(USER_INFO_KEY)
  },

  /**
   * 设置卡密
   * @param {string} cardKey 卡密
   */
  setCardKey(cardKey) {
    localStorage.setItem(CARD_KEY, cardKey)
  },

  /**
   * 获取卡密
   * @returns {string|null} 卡密
   */
  getCardKey() {
    const hash = window.location.hash; // 获取哈希部分
  
    // 提取哈希部分的查询参数
    const queryString = hash.includes('?') ? hash.split('?')[1] : '';
    
    if (queryString) {
      const urlParams = new URLSearchParams(queryString); // 解析查询参数
  
      return urlParams.get('cardKey') || ''; // 返回 cardKey 值
    }
    
    return ''; // 如果没有查询参数，返回空字符串
  },
  

  /**
   * 清除所有存储
   */
  clear() {
    localStorage.removeItem(TOKEN_KEY)
    localStorage.removeItem(USER_INFO_KEY)
    localStorage.removeItem(CARD_KEY)
  }
}

export default StorageUtil
